Emergency alert systems with augmented location data

ABSTRACT

Aspects discussed herein relate to communicating with a community of people determined by a geofencing system to be physically in or near a location such as a building or property, wherein the system overrides any alert-inhibiting state in the people&#39;s mobile devices (or any other device) to deliver audio or visual alerts in emergency situations. As may be appreciated, the present communication and emergency alert system may be used by many different groups of administrators to communicate with many different communities of people. Moreover, certain individuals may be members of more than one community at the same time, and the communities themselves may change over time based both on the user&#39;s preferences and on their physical locations. The location of an individual may be determined based on location data provided by their mobile device and refined using known landmarks, such as beacons and/or access points, located in the location.

CROSS-REFERENCE TO RELATED APPLICATIONS

The instant application claims priority to U.S. Provisional Patent Application No. 62/901,390, titled “Emergency Alert Systems” and filed Sep. 17, 2019, the disclosure of which is hereby incorporated by reference in its entirety.

FIELD OF USE

Aspects of the disclosure relate generally to communication systems and more specifically to important and emergency alert systems.

BACKGROUND

People use many different systems to send and receive messages with others, including individual emails, group emails, texts to mobile devices, etc. during emergency and time-sensitive events. Existing emergency alert systems like the Federal Emergency Alert System rely on people listening to a radio, television, or similar device to receive their alerts. These devices may interfere with sleep and therefore are usually turned off while people are sleeping or otherwise busy. The precision in which emergency alert systems use for transmitting alerts is further limited to existing telecommunication architecture. For example, if there were a fire in a portion of Orange County, Calif., the existing emergency alerts systems would notify the entire Los Angeles metropolitan area and portions of the surrounding counties. Alert systems utilizing mobile phones are similarly limited as they do not allow for emergency alerts to be audibly provided while the mobile phone is in a silent or do not disturb mode.

Aspects described herein may address these and other problems, and generally improve the quality, efficiency, and speed of emergency alerts by improving the ability of a system to quickly and easily identify groups of people such that these people may be quickly contacted in the event of an emergency.

SUMMARY

The following presents a simplified summary of various aspects described herein. This summary is not an extensive overview, and is not intended to identify key or critical elements or to delineate the scope of the claims. The following summary merely presents some concepts in a simplified form as an introductory prelude to the more detailed description provided below. Corresponding apparatus, systems, and computer-readable media are also within the scope of the disclosure.

Aspects discussed herein relate to communicating with a community of people determined by a geofencing system to be physically in or near a location such as a building or property, wherein the system overrides any alert-inhibiting state in the people's mobile devices (or any other device) to deliver audio or visual alerts in emergencies. In addition to providing emergency alerts, the present system may be used by building managers to communicate with people living or working in a building, by university administration to communicate with students or instructors on a university campus, by airport management to communicate with travelers passing through the airport, by a stadium operator to communicate with fans at a sporting game, and a variety of other uses. As may be appreciated, the present communication and emergency alert system may be used by many different groups of administrators to communicate with many different communities of people. Moreover, certain individuals may be members of more than one community at the same time, and the communities themselves may change over time based both on the user's preferences and on their physical locations. The location of an individual may be determined based on location data provided by their mobile device and refined using known landmarks, such as beacons and/or access points, located in the location.

In one embodiment, a computer-implemented method includes obtaining an indication of an alert condition in a facility, determining that the alert condition includes an emergency condition in a first portion of the facility, determining a location for a plurality of mobile devices, each mobile device being located in the facility, determining, for each mobile device in the plurality of mobile devices, an exit location for the mobile device, generating, based on the emergency condition and the alert condition, an evacuation route for each mobile device in the plurality of mobile device, wherein the evacuation route includes a route from the location of the mobile device in the facility to the exit location for the mobile device, generating, for each mobile device based on the emergency condition and the evacuation route, an emergency alert for each mobile device, and transmitting each emergency alert to the corresponding mobile device, wherein the emergency alert causes the mobile device to display a notification irrespective of an alert-enabled setting of the mobile device.

In yet another embodiment of the invention, the evacuation route includes at least one hallway located in the facility as indicated in a route database for the facility.

In still another embodiment of the invention, the notification for the emergency alert is selected from the group consisting of an audible notification, a visual notification, and a haptic notification.

In yet still another embodiment of the invention, the computer-implemented method further includes determining that a second mobile device is located in the facility and automatically adding the second mobile device to a community for the facility, wherein the community includes the plurality of mobile devices.

In yet another additional embodiment of the invention, the computer-implemented method further includes identifying a mobile device in the plurality of mobile devices for which a location has not been determined, determining a proxy location for the mobile device, and using the proxy location for the mobile device as the location of the mobile device.

In still another additional embodiment of the invention, the mobile device is associated with a user, an access card is associated with the user, and the proxy location includes an access device at which the access card associated with the user was used.

In yet still another additional embodiment of the invention, the proxy location includes a location of a wireless access point to which the mobile device is connected.

Yet another embodiment of the invention includes a computing device including a processor and a memory in communication with the processor and storing instructions that, when read by the processor, cause the computing device to obtain an indication of an alert condition in a facility, determine that the alert condition includes an emergency condition in a first portion of the facility, determine a location for a plurality of mobile devices, each mobile device being located in the facility, determine, for each mobile device in the plurality of mobile devices, an exit location for the mobile device, generate, based on the emergency condition and the alert condition, an evacuation route for each mobile device in the plurality of mobile device, wherein the evacuation route includes a route from the location of the mobile device in the facility to the exit location for the mobile device, generate, for each mobile device based on the emergency condition and the evacuation route, an emergency alert for each mobile device, and transmit each emergency alert to the corresponding mobile device, wherein the emergency alert causes the mobile device to display a notification irrespective of an alert-enabled setting of the mobile device.

In yet another embodiment of the invention, the evacuation route includes at least one hallway located in the facility as indicated in a route database for the facility.

In still another embodiment of the invention, the notification for the emergency alert is selected from the group consisting of an audible notification, a visual notification, and a haptic notification.

In yet still another embodiment of the invention, the instructions, when read by the processor, further cause the computing device to determine that a second mobile device is located in the facility and automatically add the second mobile device to a community for the facility, wherein the community includes the plurality of mobile devices.

In yet another additional embodiment of the invention, the instructions, when read by the processor, further cause the computing device to identify a mobile device in the plurality of mobile devices for which a location has not been determined, determine a proxy location for the mobile device, and use the proxy location for the mobile device as the location of the mobile device.

In still another additional embodiment of the invention, the mobile device is associated with a user, an access card is associated with the user, and the proxy location includes an access device at which the access card associated with the user was used.

In yet still another additional embodiment of the invention, the proxy location includes a location of a wireless access point to which the mobile device is connected.

Still another embodiment of the invention includes a non-transitory machine-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform steps including obtaining an indication of an alert condition in a facility, determining that the alert condition includes an emergency condition in a first portion of the facility, determining a location for a plurality of mobile devices, each mobile device being located in the facility, determining, for each mobile device in the plurality of mobile devices, an exit location for the mobile device, generating, based on the emergency condition and the alert condition, an evacuation route for each mobile device in the plurality of mobile device, wherein the evacuation route includes a route from the location of the mobile device in the facility to the exit location for the mobile device, generating, for each mobile device based on the emergency condition and the evacuation route, an emergency alert for each mobile device, and transmitting each emergency alert to the corresponding mobile device, wherein the emergency alert causes the mobile device to display a notification irrespective of an alert-enabled setting of the mobile device.

In yet another embodiment of the invention, the evacuation route includes at least one hallway located in the facility as indicated in a route database for the facility.

In still another embodiment of the invention, the notification for the emergency alert is selected from the group consisting of an audible notification, a visual notification, and a haptic notification.

In yet still another additional embodiment of the invention, the instructions, when executed by one or more processors, further cause the one or more processors to perform steps including determining that a second mobile device is located in the facility and automatically adding the second mobile device to a community for the facility, wherein the community includes the plurality of mobile devices.

In yet another additional embodiment of the invention, the instructions, when executed by one or more processors, further cause the one or more processors to perform steps including identifying a mobile device in the plurality of mobile devices for which a location has not been determined, determining a user associated with the identified mobile device, identifying an access card associated with the user, determining a proxy location for the mobile device based on the access card and an access device within the facility at which the access card was used, and using the proxy location for the mobile device as the location of the mobile device.

In still another additional embodiment of the invention, the instructions, when executed by one or more processors, further cause the one or more processors to perform steps including identifying a mobile device in the plurality of mobile devices for which a location has not been determined, determining an access point to which the identified mobile device is connected, identifying a location of the access point in the facility, and using the location of the access point as the location for the mobile device.

These features, along with many others, are discussed in greater detail below.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is illustrated by way of example and not limited in the accompanying figures in which like reference numerals indicate similar elements and in which:

FIG. 1 illustrates an example of an emergency alert system in which one or more aspects described herein may be implemented;

FIG. 2 illustrates an example computing device in accordance with one or more aspects described herein;

FIG. 3 illustrates a process for providing an emergency alert in accordance with one or more aspects described herein;

FIG. 4 depicts a flow chart for providing alerts via intermediate devices according to one or more aspects of the disclosure;

FIG. 5 depicts a flow chart for providing alerts according to one or more aspects of the disclosure;

FIG. 6 depicts a facility database according to one or more aspects of the disclosure;

FIG. 7 depicts a flow chart for generating alerts according to one or more aspects of the disclosure; and

FIG. 8 depicts a flow chart for routing alerts according to one or more aspects of the disclosure.

DETAILED DESCRIPTION

In the following description of the various embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration various embodiments in which aspects of the disclosure may be practiced. It is to be understood that other embodiments may be utilized and structural and functional modifications may be made without departing from the scope of the present disclosure. Aspects of the disclosure are capable of other embodiments and of being practiced or being carried out in various ways. In addition, it is to be understood that the phraseology and terminology used herein are for the purpose of description and should not be regarded as limiting. Rather, the phrases and terms used herein are to be given their broadest interpretation and meaning.

Emergency alert systems may override any alert-inhibiting state in a person's mobile device to deliver an audio, visual, and/or haptic alert in an emergency. An alert-inhibiting state prevents a mobile device from playing a sound and/or visual indication of a notification received by the mobile device. Emergency alert systems provide a method of communicating with members of a community by using geofencing to determine the location of users such that they may optionally be automatically added to a community. Members may be auto-subscribed into the community based on their physical locations. These subscriptions may change from time to time as the mobile device moves. Users may also be added to a community based on their own user preferences. People may be members of more than one community and the communities may change over time. A variety of systems and methods for establishing the location of a mobile device and providing alerts to the mobile device in accordance with embodiments of the invention are described in U.S. Pat. No. 10,251,023, titled “Notification and Communication System using Geofencing to Identify Members of a Community” and issued Apr. 2, 2019, the disclosure of which is hereby incorporated by reference in its entirety.

For example, emergency alert systems in accordance with embodiments of the invention can communicate with members of a community by using geofencing to determine the location of users such that they can optionally be automatically added to a community. As such, members may be auto-subscribed into the community based on their physical locations (which may change from time to time). Members or users can also be added to the community based on their own user preferences. People can be members of more than one community and the communities can change over time. Geofencing systems can be used to determine whether a particular mobile device is physically present in a geographic region or area or range (for example, in a building or on a property) based upon the physical location of the smartphone. If the user's phone is determined to be on the property, the user's phone can be automatically added to the property community. In cases where the mobile device is determined not to be physically present on the property (e.g. not detected by proximity sensors in the location), the user can be provided with the option of voluntarily subscribing to join the community. In this way, interested users (e.g. building tenants who are away at work and/or persons working at different jobsites) can be kept informed of developments and alerts with regard to a particular property community even when they are physically away from that property.

Emergency alert systems can determine the “alert state” of each of the individuals' smart devices. This can be accomplished by sending a signal to the user's mobile device to determine if the “silent” or “do not disturb” setting is on. If the mobile device setting is alert-enabled (e.g. the “do not disturb” or “silent” function is not turned on), then the mobile device is ready to receive alert messages at step 210. However, in those cases where the mobile device is not alert-enabled (e.g. the “do not disturb” or “silent” function is turned on), then one of two options is possible. First, the user can be sent a message asking if the alert setting can be switched to alert-enabled. Should the user agree and grant permission, then the alert enabled setting is enabled (e.g. the “do not disturb” or “silent” function is overridden). Alternatively, the present system may instead automatically override the “do not disturb” or “silent” function, thereby enabling the mobile device to receive alerts and communications from the emergency alert system irrespective of the “do not disturb” or “silent” function. As such, an important advantage of the present system is that it can be prioritized over typical email, text, and notification traffic, even when the user's phone is set on silent, and warn building or property occupants in the event of an emergency situation such as a fire, crime, or medical emergency. In this way, the alert can be provided to the user irrespective of the alert-enabled setting of the device, including the playback of any audio, visual, and/or haptic notifications indicated in the alert as appropriate.

In addition to sending safety alerts, emergency alert systems can send property-specific (and/or interest group-specific) messages and non-property-specific messages (e.g. messages appealing to more than one property or interest group-specific group). The property-specific messages and the non-property-specific messages may be sent with the smartphone's “do not disturb” or “silent” function overridden and turned off. However, the more likely desired setting may be to have the property-specific messages and non-property-specific messages are subject to the smartphone's “do not disturb” or “silent” settings. Emergency alert systems can be configured such that only safety alert messages will override the smartphone's “do not disturb” or “silent” settings while other messages (e.g. building advertisements/messages) will not override the smartphone's “do not disturb” or “silent” settings. The settings used can optionally be set by members of the community themselves, by the manager or administrator of the community, or both. This is desirable such that users/community members receive safety alerts such as “fire” or “active shooter in the building” without such messages being silenced, but are able to block, silence, or turn off messages like “lunch specials in the building's cafe.” In preferred aspects, such advertising may be targeted and, for example, by being tailored to businesses within a 2 to 3 block radius around building. Moreover, when the user/community member first registers with the present system, they can be asked a series of questions to better target the advertising to their desires in addition to their location.

FIG. 1 illustrates an emergency alert system 100 in accordance with an embodiment of the invention. The emergency alert system 100 includes at least one client device 110 and/or at least one emergency alert server system 120 in communication via a network 130. It will be appreciated that the network connections shown are illustrative and any means of establishing a communications link between the computers may be used. The existence of any of various network protocols such as TCP/IP, Ethernet, FTP, HTTP and the like, and of various wireless communication technologies such as GSM, CDMA, WiFi, and LTE, is presumed, and the various computing devices described herein may be configured to communicate using any of these network protocols or technologies. Any of the devices and systems described herein may be implemented, in whole or in part, using one or more computing devices described with respect to FIG. 2.

Client devices 110 may provide data to and/or obtain data from the at least one emergency alert server system 120 as described herein. The client devices may determine their geographic location using a variety of location-determination techniques, including receiving positioning signals from positioning system satellites 140, cellular tower triangulation, WiFi positioning systems, geocoding systems, and the like. Emergency alert server systems 120 may store and process a variety of data as described herein. The network 130 may include a local area network (LAN), a wide area network (WAN), a wireless telecommunications network, and/or any other communication network or combination thereof.

The emergency alert system may also include a variety of virtual border transmitters 150. Virtual border transmitters may broadcast a signal that is capable of determining when an object, such as a person, mobile device, vehicle, and the like, enters or crosses a particular geographic location. The virtual border transmitter may be able to determine its own location via a variety of technologies, such as via GPS, and/or be pre-programmed to know its location. In this way, the virtual border transmitter may be used to create a virtual fence around a particular geographic area. In several embodiments, a number of virtual border transmitter are installed in a specific geographic region to create a virtual border around a particular geographic region. In many embodiments, a virtual border transmitter is installed in a vehicle (or other moving object) that may detect movement in an area surrounding the vehicle. In this way, specific geofenced areas may be created, either in fixed locations or in moving locations.

Some or all of the data described herein may be stored using any of a variety of data storage mechanisms, such as databases. These databases may include, but are not limited to relational databases, hierarchical databases, distributed databases, in-memory databases, flat file databases, XML databases, NoSQL databases, graph databases, and/or a combination thereof. The data transferred to and from various computing devices in the emergency alert system 100 may include secure and sensitive data, such as confidential documents, customer personally identifiable information, and account data. It may be desirable to protect transmissions of such data using secure network protocols and encryption and/or to protect the integrity of the data when stored on the various computing devices. For example, a file-based integration scheme or a service-based integration scheme may be utilized for transmitting data between the various computing devices. Data may be transmitted using various network communication protocols. Secure data transmission protocols and/or encryption may be used in file transfers to protect the integrity of the data, for example, File Transfer Protocol (FTP), Secure File Transfer Protocol (SFTP), and/or Pretty Good Privacy (PGP) encryption. In many embodiments, one or more web services may be implemented within the various computing devices. Web services may be accessed by authorized external devices and users to support input, extraction, and manipulation of data between the various computing devices in the emergency alert system 100. Web services built to support a personalized display system may be cross-domain and/or cross-platform, and may be built for enterprise use. Data may be transmitted using the Secure Sockets Layer (SSL) or Transport Layer Security (TLS) protocol to provide secure connections between the computing devices. Web services may be implemented using the WS-Security standard, providing for secure SOAP messages using XML encryption. Specialized hardware may be used to provide secure web services. For example, secure network appliances may include built-in features such as hardware-accelerated SSL and HTTPS, WS-Security, and/or firewalls. Such specialized hardware may be installed and configured in the emergency alert system 100 in front of one or more computing devices such that any external devices may communicate directly with the specialized hardware.

Turning now to FIG. 2, a computing device 200 in accordance with an embodiment of the invention is shown. The computing device 200 may include a processor 203 for controlling overall operation of the computing device 200 and its associated components, including RAM 205, ROM 207, input/output device 209, communication interface 211, and/or memory 215. A data bus may interconnect processor(s) 203, RAM 205, ROM 207, memory 215, I/O device 209, and/or communication interface 211. In some embodiments, computing device 200 may represent, be incorporated in, and/or include various devices such as a desktop computer, a computer server, a mobile device, such as a laptop computer, a tablet computer, a smart phone, any other types of mobile computing devices, and the like, and/or any other type of data processing device.

Input/output (I/O) device 209 may include a microphone, keypad, touch screen, and/or stylus through which a user of the computing device 200 may provide input, and may also include one or more of a speaker for providing audio output and a video display device for providing textual, audiovisual, and/or graphical output. Communication interface 211 may include one or more transceivers, digital signal processors, and/or additional circuitry and software for communicating via any network, wired or wireless, using any protocol as described herein. Software may be stored within memory 215 to provide instructions to processor 203 allowing computing device 200 to perform various actions. For example, memory 215 may store software used by the computing device 200, such as an operating system 217, application programs 219, and/or an associated internal database 221. The various hardware memory units in memory 215 may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Memory 215 may include one or more physical persistent memory devices and/or one or more non-persistent memory devices. Memory 215 may include, but is not limited to, random access memory (RAM) 205, read only memory (ROM) 207, electronically erasable programmable read only memory (EEPROM), flash memory or other memory technology, optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store the desired information and that may be accessed by processor 203.

Processor 203 may include a single central processing unit (CPU), which may be a single-core or multi-core processor, or may include multiple CPUs. Processor(s) 203 and associated components may allow the computing device 200 to execute a series of computer-readable instructions to perform some or all of the processes described herein. Although not shown in FIG. 2, various elements within memory 215 or other components in computing device 200, may include one or more caches, for example, CPU caches used by the processor 203, page caches used by the operating system 217, disk caches of a hard drive, and/or database caches used to cache content from database 221. For embodiments including a CPU cache, the CPU cache may be used by one or more processors 203 to reduce memory latency and access time. A processor 203 may retrieve data from or write data to the CPU cache rather than reading/writing to memory 215, which may improve the speed of these operations. In some examples, a database cache may be created in which certain data from a database 221 is cached in a separate smaller database in a memory separate from the database, such as in RAM 205 or on a separate computing device. For instance, in a multi-tiered application, a database cache on an application server may reduce data retrieval and data manipulation time by not needing to communicate over a network with a back-end database server. These types of caches and others may be included in various embodiments, and may provide potential advantages in certain implementations of devices, systems, and methods described herein, such as faster response times and less dependence on network conditions when transmitting and receiving data.

Although various components of computing device 200 are described separately, functionality of the various components may be combined and/or performed by a single component and/or multiple computing devices in communication without departing from the invention.

Emergency alert system can override any alert-inhibiting state in a person's mobile device to deliver an audio or visual alert in an emergency situation. Members of a community can be determined by using geofencing to determine the location of users such that they can optionally be automatically added to a community. As such, members may be auto-subscribed into the community based on their physical locations, which may change from time to time. Members or users can also be added to the community based on their own user preferences. People can be members of more than one community and the communities can change over time.

FIG. 3 illustrates a process for providing an emergency alerts to members of a community in accordance with one or more aspects described herein. Some or all of the steps of process 300 may be performed using any of the computing devices and/or combination thereof described herein. In a variety of embodiments, some or all of the steps described below may be combined and/or divided into sub-steps as appropriate.

At step 310, it can be determined if a mobile device is located within a particular region. For example, an emergency alert server system, using a geofencing and/or GPS systems, can determine whether a mobile device associated with a particular user is physically present in a geographic region or area or range (e.g. In a building or on a property) based upon the physical location of the mobile device. In several embodiments, the physical location of the mobile device can be determined based on a GPS location augmented using one or more beacons located in the geographic region. At step 312, if the user's mobile device is determined to be on the property, the user's mobile device can be automatically added to a community database. In several embodiments, the mobile device can be added to the community database by the emergency alert server system. At step 314, in cases where the user's mobile device is determined not to be physically present on the property (e.g. not detected by proximity sensors), the user can be provided with the option of voluntarily subscribing to join the community (e.g. enter the user's mobile device into the community database) by providing a subscription request on the mobile device. In this way, interested users (e.g. building tenants who are away at work, persons working at different job sites, and the like) can be kept informed of developments and alerts with regard to a particular property community even when they are physically away from that property. If the mobile device does not subscribe to the community, the process can end at step 324.

At step 316, the alert state of each of the subscribed user's mobile devices can be determined. This can be accomplished by sending a signal to the mobile device to determine if the mobile device's “silent” or “do not disturb” setting is on. If the mobile device setting is alert-enabled (e.g. the “do not disturb” or “silent” function is not turned on), then the mobile device is ready to receive alert messages. However, in those cases where the mobile device is not alert-enabled (e.g. the “do not disturb” or “silent” function is turned on), then one of two options is possible. First, at step 320, a message can be sent to the user asking if the alert setting can be switched to alert-enabled. Should the user agree and grant permission, then the alert enabled setting is enabled (e.g. the “do not disturb” or “silent” function is overridden). If the user does not agree to set the mobile device to an alert-enabled state, the process can end at step 324. Second, at step 322, the system may instead proceed directly to automatically override the “do not disturb” or “silent” function, thereby enabling the mobile device to receive alerts and communications from system.

At step 318, a variety of messages can be sent using the emergency alert server system. In addition to sending safety alerts through the safety alert module, the emergency alert server system also can send property-specific (or interest group-specific) messages using the property specific module and non-property-specific messages (e.g. Messages appealing to more than one property or interest group-specific group) using the non-property communication module. In different optional embodiments of the system, the property-specific messages sent by the property specific module and the non-property-specific messages sent by the non-property communication module may be sent with the “do not disturb” or “silent” function of the mobile device overridden and turned off. However, the more likely desired setting may be to have the property-specific messages sent by the property specific module and non-property-specific messages sent by the non-property communication module are subject to the “do not disturb” or “silent” settings of the mobile device. In such a case, the emergency alert system can be configured such that only safety alert messages will override the “do not disturb” or “silent” settings of the mobile device, while other messages (e.g. Building advertisements and/or messages) will not override the “do not disturb” or “silent” settings. The settings used can optionally be set by members of the community themselves, by the manager or administrator of the community, or both. This is desirable such that users/community members receive safety alerts such as “fire” or “active shooter in the building” without such messages being silenced, but can block, silence, or turn off messages like “lunch specials in the building's café.” These various alerts can be provided via the mobile device in step 326. The alerts may be provided using any audible, visual, and/or haptic notifications indicated in the alert.

The emergency alert server system can obtain, depending upon the alert condition, a user response to the delivered alert. The user response can include an indication that the user viewed the alert. In many embodiments, the user having viewed the alert can be indicated by the user having interacted with their mobile device after the alert was delivered to and/or displayed by an emergency alert application executing on the mobile device, where the emergency alert application can display one or more notifications indicated in the alert by overriding any alert-inhibiting state of the mobile device as described herein. The user response can include any responses to prompts and/or questions provided in the alert, such as a request for additional information about an alert condition, the user's response to the alert condition, and the like.

FIG. 4 depicts a flow chart for delivering alerts according to one or more aspects of the disclosure. Some or all of the steps of process 400 may be performed using any of the computing devices and/or combination thereof described herein. In a variety of embodiments, some or all of the steps described below may be combined and/or divided into sub-steps as appropriate.

At step 410, an alerting module of an emergency alert server system can determine that a mobile device is scheduled to receive an alert but the current location of the mobile device cannot be determined. At step 412, the emergency alert system can determine if the mobile device is connected to an intermediate device, such as a WiFi router, cell tower, Bluetooth beacon, point of sale device, NFC card reader, and/or another computing device that may have a WiFi, Bluetooth or NFC connection with the mobile device. If the mobile device is not connected to another device, the process may provide the alert to the mobile device via a cellular communication channel in step 424.

At step 414, if the mobile device is connected to an intermediate device, the emergency alert server system can query a known device database to determine the properties of the intermediate device, including its geolocation and the device ability to deliver the alerts to the mobile device via its own communication channel, such as Bluetooth, WiFi, etc. If the intermediate device is not in the known device database, the emergency alert server system may provide the alert via cellular signal by an appropriate delivery module, such as a safety module, the property specific module, and a non-property communication module as described herein at step 424.

At step 416, if the connected device is in the known device database, the emergency alert server system can query an alert database to determine if the geolocation of the connected device is consistent with the alert criteria. At step 418, if the connected device's geolocation is associated with the alert, but not its own alert delivery method, the alert can be delivered via cellular signal by the emergency alert server system at step 424. If the connected device does not have its own alert delivery communication path, the alert is delivered via cellular signal by the emergency alert server system at step 424. If the connected device does have an alert delivery communication path, such as WiFi, it is delivered by that path instead of, or in addition to the cellular path, at step 420. Regardless of alert delivery path, the alert can be transmitted by the emergency alert server system via the appropriate communication channel (e.g. via an intermediate device and/or cellular communication channel) at step 422.

An emergency alert system may manage the directing of alerts to different subsets of the community based upon alert criteria input into the alert database by a system administrator and delivers these alerts to the appropriate mobile devices. A facility database may contain a history of devices present in the facility and/or scans by access sensors in the facility. In this way, the facility database can track each time an individual's credentials (usually in the form of an NFC card) are used at an access point, such as a door. However, it should be noted that any access sensors, such as biometrics, fingerprint, facial recognition, retinal scan, etc. can be used as appropriate. Similarly, facial recognition of security camera footage can also be used. The emergency alert server system can compare mobile devices present at the facility with the access devices (e.g. Keycards, biometrics, and the like) associated with the mobile devices. The last location an access device was scanned in the facility can be used as a proxy for mobile device location. A Routing Module of the emergency alert server system may identify the nearest (e.g. most accessible) exit to the mobile device and delivers the most efficient evacuation route from the routing database through the selected exit.

FIG. 5 depicts a flow chart for providing alerts according to one or more aspects of the disclosure. Some or all of the steps of process 500 may be performed using any of the computing devices and/or combination thereof described herein. In a variety of embodiments, some or all of the steps described below may be combined and/or divided into sub-steps as appropriate.

At step 510, an emergency alert server system can obtain sensor data. For example, sensor data can include a signal from a smoke detector that smoke is present in a facility. It should be noted that any signal from any device, such as a water detector, earthquake detector, and the like, can be obtained as appropriate.

At step 512, the emergency alert server system can determine if an alert condition is present based upon the sensor data. If alarm conditions are present in the sensor data, the system moves to step 520. At step 514, if the sensor data does not indicate an alert condition the network of authorized mobile devices are polled for user input of an alert condition. At step 516, the emergency alert server system can obtain an alert notification from a mobile device. The emergency alert server system can store the user-defined alert to an alert database at step 518. The user-defined alert can include any of a variety of data such as, but not limited to, text data, audible notifications, visual notifications, haptic notifications, and the like.

At step 520, an evacuation alert may be generated based on the alert condition. The evacuation alert can be generated by the emergency alert server system. The evacuation alert can include any of a variety of data such as, but not limited to, text data, audible notifications, visual notifications, haptic notifications, and the like. In a variety of embodiments, the evacuation alert includes a description of the alert condition and an evacuation plan. The evacuation plan can be customized to each mobile device present in the facility. For example, the evacuation plan targeted toward a mobile device can include an evacuation route from the last known location of the mobile device to the closest exit point to the mobile device. If the alert condition does not indicate an evacuation condition, an emergency alert can be generated indicating the alert condition. For example, a chemical spill in one portion of a facility may not require the evacuation of a section portion of the facility, but users in the section portion of the facility can be advised to avoid the first portion of the facility. At step 522, the location of all mobile devices in the facility can be determined. If there are any mobile devices with an unknown location in the facility, a location module can be used by the emergency alert server system to identify the location of those mobile devices at step 524. At step 526, the generated alerts can be provided to the mobile devices.

A routing database may store the layout of a facility, images of all exits and relevant landmarks, as well as evacuation routes from each room in the facility. A third-party server may be a plurality of servers from which historical data events involving a credential associated with the user may be found. A CC transaction database may be a proxy for a credit card provider's transaction records for which a credit card that is associated with the user would include the time and location of any point of sale devices that engaged in transactions using the credit card(s) associated with users. A keycard access database may be a proxy for a building or organization access system historical records. This database may store the time and location of each time a near field communication chip associated with a user was used to attempt access at a card reader. A biometric recognition database may be a proxy for a building or organization biometric-based identification system. This database may store the time and location of a biometric recognition event, such as a facial recognition software being run against surveillance camera footage, or a fingerprint being used at an access point. The emergency alert server system may use any of these databases to determine the location of a mobile device and/or determine an exit route for the user associated with a mobile device as described herein.

FIG. 6 depicts a facility database according to one or more aspects of the disclosure. The database 600 contains the history of scans by access sensors in the facility. For example, the database tracks each time an individual's credentials (such as an NFC card) are used at an access point, such as a door. The time, keycard identifier, and access point can be indicated in the alert code database. In the illustrated example, the database includes a table with a key column identifying the keycard id along with columns indicating each access point in a facility. Each row of the database indicates the most recent time at which the keycard id was present at a particular access point. As shown in database 600, keycard ‘12345’ was seen at access point 1 at 9:47 am, while keycard ‘12347’ was seen at access point 2 at 8:25 am and access point 3 at 9:26 am. An emergency alert system can use this information to determine where a mobile device is for providing alerts to the mobile device as described herein.

FIG. 7 depicts a flow chart for generating alerts according to one or more aspects of the disclosure. Some or all of the steps of process 700 may be performed using any of the computing devices and/or combination thereof described herein. In a variety of embodiments, some or all of the steps described below may be combined and/or divided into sub-steps as appropriate.

At step 710, an emergency alert server system can obtain an indication of an evacuation alert and at least one mobile device whose location is not known. The emergency alert server system can provide targeted alerts to the mobile devices based on the specific location of the mobile device. For example, the emergency alert server system can provide different alerts to mobile devices located within different portions of a facility. The alert can indicate the alert condition, exit location information, and/or any other information as described herein.

At step 712, the emergency alert server system can query a CC transaction database for a recent transaction by a credit card associated with the mobile device(s) whose location is not known. At step 714, if a recent transaction was found, such as a user in a mall using their credit card to make a purchase in a particular store, the location of the device processing the transaction involving the credit card can be used as the location of the mobile device and the process can proceed to step 724. If no recent transaction involving a credit was identified query at step 714, the emergency alert server system can query a keycard access database for recent use of a keycard associated with the mobile device(s) whose geolocation is not known at step 716. At step 718, if a recent access was performed with the keycard, such as the user utilizing their keycard to access a secure section of a facility, the location of that access point can be used as the location of the mobile device and the process can proceed to step 724. If no recent access was identified at step 718, the emergency alert server system can query a biometric recognition database at step 720. The emergency alert server system can query the biometric recognition database for a recent identification of biometric information, such as facial recognition, with the mobile device(s) whose geolocation is not known. At step 722, if the emergency alert server system obtains a recent identification of a biometric indicator, such as the user being identified by facial recognition software being run against surveillance system footage, the location of where the user was identified can be used as the location of the mobile device and the process can proceed to step 724.

At step 724, the emergency alert server system can determine one or more exits that are proximate to the mobile device based on the proxy location identified in steps 712-722. The emergency alert server system can also generate one or more routes through the facility from the location of the mobile device to the one or more exits. The routes can include any of a variety of hallways, rooms, and/or any other building features as identified in a routing database for the facility as appropriate. At step 726, the emergency alert server system can obtain images of the determined exits. At step 728, the emergency alert server system can generate an alert indicating the exit routes and the images of the exit locations as described herein. The emergency alert server system can provide the alerts to the mobile device. At step 730, if no proxy location indicating the relative location of the mobile device has been found, the mobile device can be sent a generalized alert indicating the alert condition.

FIG. 8 depicts a flow chart for routing alerts according to one or more aspects of the disclosure. Some or all of the steps of process 800 may be performed using any of the computing devices and/or combination thereof described herein. In a variety of embodiments, some or all of the steps described below may be combined and/or divided into sub-steps as appropriate.

At step 810, an emergency alert server system can use a variety of communication modules (e.g. safety alert modules, property specific modules, and/or non-property communication modules) to provide alerts to mobile devices in the community. Those modules can transmit alerts to the appropriate users' mobile device based on the location of the mobile device and/or monitor for a response to those alerts that require a response. For example, if a fire is detected by sensors in a school, one or more alert messages can be generated and provided to various communities of users in the school's community. The alert message can indicate that the user is to select an exit to which the user is going to proceed in response to the alert. At step 812, the emergency alert server system can obtain an indication of the exit selected by the user. At step 814, the emergency alert server system can query a route database for the evacuation route from the user's current location, via the user's selected exit. In many embodiments, the emergency alert server system adjusts the route to avoid any detected threats to safety such as a fire. At step 816, the emergency alert server system can provide the generated route to the user's mobile device so the user can safely navigate from their current location to the selected exit.

One or more aspects discussed herein may be embodied in computer-usable or readable data and/or computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices as described herein. Generally, program modules include routines, programs, objects, components, data structures, and the like that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other device. The modules may be written in a source code programming language that is subsequently compiled for execution, or may be written in a scripting language such as (but not limited to) HTML or XML. The computer executable instructions may be stored on a computer readable medium such as a hard disk, optical disk, removable storage media, solid-state memory, RAM, and the like. As will be appreciated by one of skill in the art, the functionality of the program modules may be combined or distributed as desired in various embodiments. In addition, the functionality may be embodied, in whole or in part, in firmware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA), and the like. Particular data structures may be used to more effectively implement one or more aspects discussed herein, and such data structures are contemplated within the scope of computer executable instructions and computer-usable data described herein. Various aspects discussed herein may be embodied as a method, a computing device, a system, and/or a computer program product.

Although the present invention has been described in certain specific aspects, many additional modifications and variations would be apparent to those skilled in the art. In particular, any of the various processes described above may be performed in alternative sequences and/or in parallel (on different computing devices) in order to achieve similar results in a manner that is more appropriate to the requirements of a specific application. It is therefore to be understood that the present invention may be practiced otherwise than specifically described without departing from the scope and spirit of the present invention. Thus, embodiments of the present invention should be considered in all respects as illustrative and not restrictive. Accordingly, the scope of the invention should be determined not by the embodiments illustrated, but by the appended claims and their equivalents. 

What is claimed is:
 1. A computer-implemented method, comprising: obtaining an indication of an alert condition in a facility; determining that the alert condition comprises an emergency condition in a first portion of the facility; determining a location for a plurality of mobile devices, each mobile device being located in the facility; determining, for each mobile device in the plurality of mobile devices, an exit location for the mobile device; generating, based on the emergency condition and the alert condition, an evacuation route for each mobile device in the plurality of mobile device, wherein the evacuation route comprises a route from the location of the mobile device in the facility to the exit location for the mobile device; generating, for each mobile device based on the emergency condition and the evacuation route, an emergency alert for each mobile device; and transmitting each emergency alert to the corresponding mobile device, wherein the emergency alert causes the mobile device to display a notification irrespective of an alert-enabled setting of the mobile device.
 2. The computer-implemented method of claim 1, wherein the evacuation route comprises at least one hallway located in the facility as indicated in a route database for the facility.
 3. The computer-implemented method of claim 1, wherein the notification for the emergency alert is selected from the group consisting of an audible notification, a visual notification, and a haptic notification.
 4. The computer-implemented method of claim 1, further comprising: determining that a second mobile device is located in the facility; and automatically adding the second mobile device to a community for the facility, wherein the community comprises the plurality of mobile devices.
 5. The computer-implemented method of claim 1, further comprising: identifying a mobile device in the plurality of mobile devices for which a location has not been determined; determining a proxy location for the mobile device; and using the proxy location for the mobile device as the location of the mobile device.
 6. The computer-implemented method of claim 5, wherein: the mobile device is associated with a user; an access card is associated with the user; and the proxy location comprises an access device at which the access card associated with the user was used.
 7. The computer-implemented method of claim 5, wherein the proxy location comprises a location of a wireless access point to which the mobile device is connected.
 8. A computing device, comprising: a processor; and a memory in communication with the processor and storing instructions that, when read by the processor, cause the computing device to: obtain an indication of an alert condition in a facility; determine that the alert condition comprises an emergency condition in a first portion of the facility; determine a location for a plurality of mobile devices, each mobile device being located in the facility; determine, for each mobile device in the plurality of mobile devices, an exit location for the mobile device; generate, based on the emergency condition and the alert condition, an evacuation route for each mobile device in the plurality of mobile device, wherein the evacuation route comprises a route from the location of the mobile device in the facility to the exit location for the mobile device; generate, for each mobile device based on the emergency condition and the evacuation route, an emergency alert for each mobile device; and transmit each emergency alert to the corresponding mobile device, wherein the emergency alert causes the mobile device to display a notification irrespective of an alert-enabled setting of the mobile device.
 9. The computing device of claim 8, wherein the evacuation route comprises at least one hallway located in the facility as indicated in a route database for the facility.
 10. The computing device of claim 8, wherein the notification for the emergency alert is selected from the group consisting of an audible notification, a visual notification, and a haptic notification.
 11. The computing device of claim 8, wherein the instructions, when read by the processor, further cause the computing device to: determine that a second mobile device is located in the facility; and automatically add the second mobile device to a community for the facility, wherein the community comprises the plurality of mobile devices.
 12. The computing device of claim 8, wherein the instructions, when read by the processor, further cause the computing device to: identify a mobile device in the plurality of mobile devices for which a location has not been determined; determine a proxy location for the mobile device; and use the proxy location for the mobile device as the location of the mobile device.
 13. The computing device of claim 12, wherein: the mobile device is associated with a user; an access card is associated with the user; and the proxy location comprises an access device at which the access card associated with the user was used.
 14. The computing device of claim 12, wherein the proxy location comprises a location of a wireless access point to which the mobile device is connected.
 15. A non-transitory machine-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform steps comprising: obtaining an indication of an alert condition in a facility; determining that the alert condition comprises an emergency condition in a first portion of the facility; determining a location for a plurality of mobile devices, each mobile device being located in the facility; determining, for each mobile device in the plurality of mobile devices, an exit location for the mobile device; generating, based on the emergency condition and the alert condition, an evacuation route for each mobile device in the plurality of mobile device, wherein the evacuation route comprises a route from the location of the mobile device in the facility to the exit location for the mobile device; generating, for each mobile device based on the emergency condition and the evacuation route, an emergency alert for each mobile device; and transmitting each emergency alert to the corresponding mobile device, wherein the emergency alert causes the mobile device to display a notification irrespective of an alert-enabled setting of the mobile device.
 16. The non-transitory machine-readable medium of claim 15, wherein the evacuation route comprises at least one hallway located in the facility as indicated in a route database for the facility.
 17. The non-transitory machine-readable medium of claim 15, wherein the notification for the emergency alert is selected from the group consisting of an audible notification, a visual notification, and a haptic notification.
 18. The non-transitory machine-readable medium of claim 15, wherein the instructions, when executed by one or more processors, further cause the one or more processors to perform steps comprising: determining that a second mobile device is located in the facility; and automatically adding the second mobile device to a community for the facility, wherein the community comprises the plurality of mobile devices.
 19. The non-transitory machine-readable medium of claim 15, wherein the instructions, when executed by one or more processors, further cause the one or more processors to perform steps comprising: identifying a mobile device in the plurality of mobile devices for which a location has not been determined; determining a user associated with the identified mobile device; identifying an access card associated with the user; determining a proxy location for the mobile device based on the access card and an access device within the facility at which the access card was used; and using the proxy location for the mobile device as the location of the mobile device.
 20. The non-transitory machine-readable medium of claim 15, wherein the instructions, when executed by one or more processors, further cause the one or more processors to perform steps comprising: identifying a mobile device in the plurality of mobile devices for which a location has not been determined; determining an access point to which the identified mobile device is connected; identifying a location of the access point in the facility; and using the location of the access point as the location for the mobile device. 